Universal Manager for Win32 platforms

Welcome to the Universal Manager for Win32 platforms.. This tool is freeware, use it freely and spread it to all people you know. Questions go to: universalmanager@nilschneider.de.

How to use

At startup, a dialog will appear that shows you a list of available machines that you can edit. Choose the machine that you want to edit and press ok. If you work with that machine the first time, you have to choose your midi devices and the device ID of your machine. Select the two midi devices where your machine is connected to. You need both connections (in and out) to run the program correctly. The Main Window: In the main window you see two lists. Each list holds all sounds that the machine can store. Why two lists? One list is intended to represent the internal buffer of your machine. The second one should offer an "exchange station" where you can load other sound sets that you have got from other sources (internet, cd-rom etc...). This is only an example, how you use the two lists is your own choice. In Functionality, the two lists are identical. Every list offers the possibility to send/receive sounds from/to the machine and to load/save sounds to disk. Renaming of sounds is also possible. And you can copy sounds from the first list to the second and vice versa ( The most important thing at all ).

The controls and menu entries

So what about that "Universal", and what is that UniversalManager.idf file?

Instead of other pattch/bank managers, the universal manager supports a dynamic list of machines that can be edited. All machines that can be edited are described in an .idf file (Instruments definition file). If there is no .idf file, there is no support for machines, so make sure that you always have an .idf file placed in the directory of you universal manager version. You should check http://www.nilsschneider.de for updates of the .idf file regularly. You've got a machine that is not supported by Universal Manager? Just edit the .idf file and add the machine you want to be supported. Here is the format of the .idf file:

Only one .idf file is needed because all instruments are combined in one file. Every instrument is defined by it's name, written between rectangular brackets. Example: [Nova]. After the instrument name, several variables follow to describe the instrument. Here is an overview of all variables that can be set. Note that every variable has it's default value and that all future variables that may be able to set in future versions will have default values that are taken if the variable isn't set. If no variables are set, the instrument definition represents a valid definition for the Novation Nova Laptop.

Variable Default Value Description
NumTotalPatches 256 Defines the number of patches that can be requested from the machine. Usually, this includes ram and rom banks.
NumEditablePatches
256  
NumPatchesPerBank 128 Describes how many patches are stored in one bank of the machine
FooterSize 1 The footer size is the number of midi bytes that come after the data block of the sysex dump. For dumps without checksum is this 1, for dumps with checksum this is usually 2
DataSize 286 Describes the size of the data of the dump. Note that this is not the actual dump length! It's the dump length minus size of the header minus size of the footer
PatchSelect - Some older machines may not be able to receive a request to every patch. Because of this, this midi string can be set and is sent before a dump or request is sent (one example: Oberheim Matrix-1000 needs it's bank select command here)
Request f0,00,20,29,01,21,u1,13,t1,s1,f7 This is the request string that will be sent to ask the machine for a specified patch.
Send f0,00,20,29,01,21,u1,02,t1,sl This is the header that will be received and sent for every patch. Sure, the header is included in every dump that the Universal Manager will receive from the machine, but we need the header to change the device id and location where the patch will be stored in the machine
BankOffset 5 Some machines need an offset in their patch data for the current bank. For example in the Nova starts the frst bank with number 5 and the second bank is 6. In the Virus from Access, the first bank is 1
BankRequestOffset 0 Some machines (Nord Lead 2) have different bytes for the bank in the request/dump message. For those purposes, this value will be added to the bank byte whenever a request is sent to a machine.
PatchOffset 0 The same as "BankOffset", but for the patch number
NamePos 10 Defines where the name for the patch can be found within the dump to display. Note that this is an absolute position, position 0 is the start of the whole dump including header, not only the data
NameLen 16 Defines the number of characters that define the name
DeviceIDNames 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 Defines the device ID names that will be placed into the combo box for the midi setup of the machine
DeviceIDBytes 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 Defines the corresponding bytes that will be send over midi as the device ID
ChecksumType - Defines the type of checksum that will be placed into the send / request midi strings. Types currently supported: "Q", "Virus", "Matrix-1000", "AllDataBytes", a fixed hexadecimal number (example: "7f") and "Range:..." (Example: "Range:0-3,4,7,11-27,33"). If you need more types to be supported, please contact me! universalmanager@nilsschneider.de
RequestChecksumType Value of "ChecksumType" If you need another checksum type for the request you can type it here. For checksum styles see above
SendChecksumPos 0 Defines the position where the checksum will be inserted before a dump is sent to the machine. Usually this is the dump length minus one to place the checksum before the ending f7h
RequestChecksumPos 0 Defines the position where the checksum will be inserted before a request is sent to the machine. Usually this is the dump length minus one to place the checksum before the ending f7h
FirstPatchNumber 0 Defines the first patch number to be displayed. Usually this is 0 or 1. Nova uses 0 for example, but Waldorf microQ uses 1
FirstBankSign A Defines how the bank numbers are displayed. For the Nova / Virus and microQ this is 'A', but the Matrix-1000 for example needs '0' here
BankNames - If you need a more complicated way to display banks, you can define the bank names individually, separated by commas. For example for the waldorf q you need "A,B,C,X".
Settings - By default, every instrument definition gets it's own settings section in the configuration for Universal Manager. Settings such as the midi devices, device ID and send / request delays are stored here. If you set the variable Settings, you can group different instrument definitions into the same settings section. This is useful if you have one instrument that supports different styles of dumps, e.g. Singles and Multis

The Midi strings

Some notes for the above midi strings: The strings represent hexadecimal values, one value per midi byte. They are separated by a ",". The values "s", "t" and "u" are special characters that are replaced. The "s" is the current sound number, the "t" is the current bank and the "u" is the device id. The "1" after each of the special characters specifies the encoding of the value. Here's a list of possible encoding modes:

Character Description Encoding Equation
0 No changes, all 8 bits are sent destination = source
1, l Only bits 0-6 are sent destination = source & 7fh
2, h Bits 7-13 are sent as bits 0-6 destination = (source >> 7) & 7fh
3 Only bits 0-3 are sent destination = source & 0fh
4 Bits 4-7 are sent as bits 0-3 destination = (source >> 4) & 0fh

If you need more encoding types please contact me! universalmanager@nilsschneider.de

Defining a definition for an instrument is not as difficult as it looks like. Just open the shipped .idf file to see examples how to define instruments. One important thing: If you've created (and testet!) a definiton for an instrument, please send the definition to me so that I can upload the definition file on the web page and include it into the next release of Universal Editor. For more information and current instrument definition files visit http://www.nilsschneider.de

 

Disclaimer

This tool is freeware. That means, you are allowed to copy and distribute the program if the whole program package is not modified. You may also place the program on CDs. If you want to place the program on your website: Please link to the following zipped program file to make sure that you always provide the most current version: http://www.nilsschneider.de/Files/UniversalManager.zip. The current version will always be available at this location. Note that you have to mention that the program is not created by yourself! It's also not allowed to place the tool as an "extra" if you sell a synth without mentioning that the program is a freeware tool that can also be downloaded from the web for free! I'm not responsible for any software- and/or hardware damage or data loss that may be caused by using the program. The program has been tested carefully, but no program is perfect. Use the program at your own risk! Nils Schneider